package luadb

// //Transaction 事务
// func checkSession(l *lua.LState) *xorm.Session {
// 	ud := l.CheckUserData(1)
// 	if v, ok := ud.Value.(*xorm.Session); ok {
// 		return v
// 	}
// 	l.ArgError(1, "transaction expected")
// 	return nil
// }

// //newSession .
// func newSession(l *lua.LState) int {
// 	val := l.Get(1)
// 	db := "default"
// 	if val != lua.LNil {
// 		db = val.String()
// 	}

// 	engine, ok := boss.dbs[db]
// 	if !ok {
// 		l.Push(lua.LString("No this database:" + db))
// 		return 1
// 	}

// 	session := engine.NewSession()
// 	if session == nil {
// 		l.Push(lua.LString("session is null"))
// 		return 1
// 	}
// 	err := session.Begin()
// 	if err != nil {
// 		l.Push(lua.LString(err.Error()))
// 		return 1
// 	}

// 	ud := l.NewUserData()
// 	ud.Value = session
// 	l.SetMetatable(ud, l.GetTypeMetatable(luaSessionTypeName))
// 	l.Push(ud)
// 	return 1
// }

// func sessionCommit(l *lua.LState) int {
// 	session := checkSession(l)
// 	err := session.Commit()
// 	if err != nil {
// 		l.Push(lua.LString(err.Error()))
// 		return 1
// 	}
// 	return 0
// }
// func sessionRollback(l *lua.LState) int {
// 	session := checkSession(l)
// 	err := session.Rollback()
// 	if err != nil {
// 		l.Push(lua.LString(err.Error()))
// 		return 1
// 	}
// 	return 0
// }

// func sessionClose(l *lua.LState) int {
// 	session := checkSession(l)
// 	err := session.Close()
// 	if err != nil {
// 		l.Push(lua.LString(err.Error()))
// 		return 1
// 	}
// 	return 0
// }

// func sessionExec(l *lua.LState) int {
// 	session := checkSession(l)
// 	sql := l.CheckString(2)

// 	res, err := session.Exec(sql)
// 	if err != nil {
// 		l.Push(lua.LString(err.Error()))
// 		return 1
// 	}

// 	LastInsertId, _ := res.LastInsertId()
// 	Affected, _ := res.RowsAffected()
// 	tab := l.NewTable()
// 	tab.RawSetString("LastInsertId", lua.LNumber(LastInsertId))
// 	tab.RawSetString("Affected", lua.LNumber(Affected))
// 	l.Push(tab)
// 	return 0
// }

// func sessionInsert(l *lua.LState) int {
// 	session := checkSession(l)
// 	tableName := l.CheckString(2)
// 	table := l.CheckTable(3)
// 	return execInsert(session, l, tableName, table)
// }

// func sessionQuery(l *lua.LState) int {
// 	session := checkSession(l)
// 	sql := l.CheckString(2)
// 	rows, err := session.QueryRows(sql)
// 	if err != nil {
// 		l.Push(lua.LString(err.Error()))
// 		return 1
// 	}
// 	ud := l.NewUserData()
// 	ud.Value = rows
// 	l.SetMetatable(ud, l.GetTypeMetatable(luaRowsTypeName))
// 	l.Push(ud)
// 	return 1
// }
